2013-09-23 63 views
0

無法讓MSBuild/Visual Studio 2012將CRM 2011插件程序集部署到指定的CRM解決方案。如何準確指定CRMPackage插件部署的CRM解決方案?

我有2個項目/ SLNs。一方面,我可以精確控制構建部署插件程序集的CRM解決方案;我的msbuild(稱爲build-1)使用我的自定義實體/窗體和插件創建了CRM解決方案。另一方面,儘管通過msbuild /pCRMOrganization,CRMSolutionName,CRMDiscoveryServer,CRMDiscoveryServerScheme指定了確切的值,但最終的CRM解決方案僅包含實體/表單。插件已部署但未正確放置到默認解決方案中(稱爲此構建-2)。

我已經從build-1複製/粘貼值(除了SLN和項目名稱)創建了構建2 ...並且不知道爲什麼build-1將插件部署到我命名的CRM解決方案,但build-2將它們部署到本組織的默認CRM解決方案。

任何想法?

回答

2

CRM可能會專門查找顯示名稱而不是架構名稱作爲解決方案名稱。

+0

這就是它 - 感謝@ajbeltran找到它。我們傳遞了CRMSolutionName屬性的「TheName」值。解決方案的本地化名稱值(根據Solution.xml)是「名稱」。我們更改了Solution.xml以在/ ImportExportXml/SolutionManifest/LocalizedNames [1]/LocalizedName @ description處具有「TheName」作爲本地化名稱值,並對其進行了修復。 插件現在部署到指定的解決方案中,而不是默認解決方案。 換句話說,Microsoft.CrmDeveloperTools.12.targets的RegisterPlugin任務使用的CRMSolutionName值是_Localized_ _Name_ –

1

不幸的是,VS010和VS2012版本中的CRM開發人員工具包僅在解決方案級別配置。因此,儘管將多個項目添加到您的解決方案中,它們都將在解決方案級別使用CRM組織設置。自從我擔心第一次發佈工具以來,這是一個相當煩人的限制。通過VS(Microsoft.CrmDeveloperTools.CrmClient.target)使用

的MSBuild的目標文件可在默認安裝位置C:\ Program Files文件(x86)的\的MSBuild \微軟\ CRM。如果您覺得自己想要構建自己的構建目標,則此文件夾還包含包含MSBuild任務的支持程序集。

我已經在過去簡單地看了一下自己,但是一個警告的話,那個程序集中的許多類都被密封了,所以擴展它們不在桌子上。

+0

感謝您的提示,但實際上我們已經知道所有這些。我們的問題是我們有兩個單獨的SLN,每個都有一個CRM Package-type項目。在SLN'A'中,我們可以直接將我們的插件部署到一個命名的CRM解決方案中。然而,在SLN'B'中,我們不能將我們的插件部署到一個命名的CRM解決方案 - 而是他們總是進入默認的CRM解決方案。 據我們所知,MSBuild的所有/ p:設置在2個用法之間是相同的。唯一的區別是它是2個獨立的SLN和2個獨立的項目。 想知道其他人是否可能知道我們需要的SLN或CSPROj的魔法值。 –