2017-04-27 77 views
0

有没有办法来设置这些“建设行动”,并从代码“复制到输出目录”属性?设置“建设行动”和“复制到输出目录”

+0

你实现一个VS扩展? –

+0

是的,但这些是我在运行时生成的文件xaml的属性。所以我应该以编程方式设置这些属性。 – blinkettaro

+0

可能的重复[设置复制到输出文件夹的代码](http://stackoverflow.com/questions/5032430/set-copy-to-output-folder-by-code) –

回答

2

参考VSLangProj,从FileProperties2类,documentation here查找属性名称。 为了获得和更改文件的属性,使用

var project = _applicationObject.Solution.Projects.Item(1); 
var items = project.ProjectItems; 
var item = items.Item(1); 
var property = item.Properties.Item("BuildAction"); 
property.Value = prjBuildAction.prjBuildActionCompile; 

要定义生成操作,设置BuildAction property这些值中的一个:

  • prjBuildActionCompile
  • prjBuildActionContent
  • prjBuildActionEmbeddedResource
  • prjBuildActionNone

CopyToOutputDirectory property是uint和可以被设置为这些__COPYTOOUTPUTSTATE值(documentation)中的一个:

  • 0 ... Never
  • 1 ... Always
  • 2 ... PreserveNewest

此答案假设您正在开发Visual Studio的扩展。还有另一个使用构建引擎达到相同的答案:Set Copy to Output folder by code

+0

好吧,这是正确的解决方案,但如何设置副本输出=复制如果更新? – blinkettaro

+0

他们记录了CopyToOutputDirectory其他>更新答案的可能值。 – dlatikay

+0

var propertyCopyToOutput = item.Properties.Item(“CopyToOutputDirectory”); propertyCopyToOutput.Value = “PreserveNewest” 这是正确的吗? – blinkettaro