我有一项任务是在一个解决方案中添加384个现有项目,以便将二进制文件依赖项替换为项目依赖项并使用msbuild构建。为此,我尝试使用Visual Studio API自动将项目添加到解决方案中。
我实际上是Windows Power Shell的新手,我正在使用Visual Studio的Power Console插件,使用$ DTE.Solution.AddFromFile({{}在当前打开的解决方案中添加项目(* .csproj,* .vcxproj)文件3}}),但它似乎不起作用。这是错误输出:
PS> $DTE.Solution.AddFromFile('WpfApplication1.csproj')
Exception calling "AddFromFile" with "2" argument(s): "The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALID
ARG))"
At line:1 char:26
+ $DTE.Solution.AddFromFile <<<< ('WpfApplication1.csproj')
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
任何人都有通过Power Console使用Visual Studio API方法的任何提示吗?
法鲁克
答案 0 :(得分:1)
您需要使用项目文件的完整路径。像这样:
PS> $DTE.Solution.AddFromFile('C:\Users\sv\Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication2\ConsoleApplication2.csproj')
答案 1 :(得分:0)
虽然@Sergey Vlasov解决了这个问题,但我也发现了这种方法:
$DTE.ExecuteCommand("File.AddExistingProject",'C:\Users\sv\Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication2\ConsoleApplication2.csproj')
也就是说,在将文件路径作为参数传递时调用“添加现有对话框”,这也是类似的。