我有一个csproj加载正常与以下行(它是一个VSTO项目文件):
...
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
<ProjectProperties HostName="Word" HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}" OfficeVersion="14.0" VstxVersion="4.0" ApplicationType="Word" Language="cs" TemplatesPath="VSTOTemplates" DebugInfoExeName="#Software\Microsoft\Office\15.0\Word\InstallRoot\Path#WINWORD.EXE" DebugInfoCommandLine="/w" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
...
由于某些原因,我想从一个变量设置ProjectProperties的HostPackage属性,而不是硬编码所以我用以下代码替换了这些行:
...
<PropertyGroup>
<HostPackageValue>{20A848B8-E01F-4801-962E-25DB0FF57389}</HostPackageValue>
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
<ProjectProperties HostName="Word" HostPackage="$(HostPackageValue)" OfficeVersion="14.0" VstxVersion="4.0" ApplicationType="Word" Language="cs" TemplatesPath="VSTOTemplates" DebugInfoExeName="#Software\Microsoft\Office\15.0\Word\InstallRoot\Path#WINWORD.EXE" DebugInfoCommandLine="/w" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
...
据我所知,这应该是一样的,因为代码没有真正的变化,但由于某种原因,当我尝试重新加载项目时,我收到以下错误
无法完成操作。参数不正确(HRESULT异常:0x80070057(E_INVALIDARG))
关于可能是什么原因的任何见解?
答案 0 :(得分:1)
关于可能是什么原因的任何见解?
因为项目内容中的任何内容都会被MSBuild 忽略,所以我们无法使用MSBuild将硬编码值替换为属性。
有关详细信息,请参阅ProjectExtensions Element (MSBuild)。