Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Msbuild .wixproj文件在生成期间不刷新属性_Msbuild_Wix_Wix3 - Fatal编程技术网

Msbuild .wixproj文件在生成期间不刷新属性

Msbuild .wixproj文件在生成期间不刷新属性,msbuild,wix,wix3,Msbuild,Wix,Wix3,我刚刚实现了一个新的构建脚本文件,用于在项目之间共享代码签名详细信息,并允许我们根据主证书是否可用轻松切换。这是在我们的主要应用程序项目以及两个WiX项目(msi和exe)中 WiX似乎记住了上一次构建中的设置-例如,如果我在正确的位置使用cert.sign构建,然后将其删除并重新构建,它会在第一次构建期间调用从cert.sign加载的设置,而不是按预期使用test.sign。这不是常规.csproj文件中的问题 我设置的.sign文件(每个证书一个): 其中一个.wixproj文件(这不起作用

我刚刚实现了一个新的构建脚本文件,用于在项目之间共享代码签名详细信息,并允许我们根据主证书是否可用轻松切换。这是在我们的主要应用程序项目以及两个WiX项目(msi和exe)中


WiX似乎记住了上一次构建中的设置-例如,如果我在正确的位置使用
cert.sign
构建,然后将其删除并重新构建,它会在第一次构建期间调用从
cert.sign
加载的设置,而不是按预期使用
test.sign
。这不是常规
.csproj
文件中的问题

我设置的
.sign
文件(每个证书一个):

其中一个
.wixproj
文件(这不起作用):

。。。
...

有没有办法解决这个问题?这可能是
SignMsi
SignExe
目标中的问题吗?我使用的是Visual Studio 2015 u2,WiX v3.10.2.2516

有什么不正常?尝试以更详细的方式运行构建—WiX似乎会记住上一次构建中的设置—例如,如果我在正确的位置使用
cert.sign
进行构建,然后将其删除并再次构建,它会在第一次构建期间调用从
cert.sign
加载的设置,而不是按照预期使用
test.sign
。这不是常规
.csproj
文件中的问题。(将很快更新问题)嗨,本,你找到解决办法了吗?据我所知,VS2015 u3、WiX 3.11中的漏洞仍未修复,目前还没有解决方案。到底是什么不起作用?尝试以更详细的方式运行构建—WiX似乎会记住上一次构建中的设置—例如,如果我在正确的位置使用
cert.sign
进行构建,然后将其删除并再次构建,它会在第一次构建期间调用从
cert.sign
加载的设置,而不是按照预期使用
test.sign
。这不是常规
.csproj
文件中的问题。(将很快更新问题)嗨,本,你找到解决办法了吗?据我所知,VS2015 u3、WiX 3.11中的漏洞仍未修复,目前尚无解决方案。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Certificate>test.pfx</Certificate>
    <FilePath>$(SolutionDir)</FilePath>
    <Pwd>cert_pwd</Pwd>
    <TimeStamp>/tr http://timestamp.server.com</TimeStamp>
    <AppName>My App</AppName>
    <Url>www.example.com</Url>
  </PropertyGroup>
</Project>
...
<Import Project="$(SolutionDir)..\..\.cert\cert.sign" Condition="Exists('$(SolutionDir)..\..\.cert\cert.sign')"/>
<Import Project="$(SolutionDir)\test.sign" Condition="!Exists('$(SolutionDir)..\..\.cert\cert.sign')"/>
<PropertyGroup>
  <PostBuildEvent>signtool sign /f $(FilePath)$(Certificate) /p $(Pwd) $(TimeStamp) /d $(AppName) /du $(Url) $(TargetPath)</PostBuildEvent>
</PropertyGroup>
...
...
<Import Project="$(SolutionDir)..\..\.cert\cert.sign" Condition="Exists('$(SolutionDir)..\..\.cert\cert.sign')"/>
<Import Project="$(SolutionDir)\test.sign" Condition="!Exists('$(SolutionDir)..\..\.cert\cert.sign')"/>
<Target Name="SignMsi">
  <Exec Command="signtool sign /f $(FilePath)$(Certificate) /p $(Pwd) $(TimeStamp) /d $(AppName) /du $(Url) @(SignMsi)" />
</Target>
...