管理特権がないとダメらしい。
VisualStudioでのデバッグ実行時などはVisualStudioを[管理者として実行]すればOK。
参考:[.NET]ReadOnly=TrueのTextBox.ForeColorの設定が反映されない場合の対処法 – 僕らはみんな歪ている
上記参照。
BackColorを設定すれば反映されるようになる模様。
因みにVisualStudioデザイナ上でデフォルト値を指定した場合、InitializeComponent()
から値設定のコードが削除される(プロパティを右クリック→リセットと大体同じ)ため、デフォルト値を設定したい場合は自分でコードを追加する必要がある。
- マウスホイールによるスクロールをするにはフォーカスを得なければならない
- Panelはそのままではフォーカスを得られない
- MouseEnterでFocus() などする必要がある
現象
Cドライブ直下に”testdir “というディレクトリがある場合
という具合に検索すると見つからないといわれる。
ディレクトリ名末尾が全角スペースの場合も同様。
原因
と検索しても、実際に検索されるのは”c:\testdir”となるため。
空白をTrimしているっぽい。
回避策
検索するパスの末尾に”\”をつければ検索可能。
参考
全角スペースがあるフォルダあるとSystem.IO.Directory.GetFilesがエラーになる: DOBON.NETプログラミング掲示板過去ログ
問題
VisualStudioの「配置パッケージの作成」や、MSBuildのターゲットPackageで作成したデプロイパッケージは、同時に作成されるdeploy.cmdでデプロイすることが可能である。
方法: deploy.cmd ファイルを使用して配置パッケージをインストールする
これを用いる際、msdeployの追加フラグを指定することが可能だが、=を含むフラグ値を指定する場合は以下のように指定するようreadmeに注意書きがある。
注意: 次の例に示すように、等号 (=) を含む任意のフラグ値は二重引用符で囲む必要があります。これにより、パッケージに含まれるデータベースの配置がスキップされます:
“-skip:objectName=dbFullSql”
ところが、実際にこの通り指定するとエラーとなってしまう(少なくとも手元の環境では)。
エラー: 引数 ‘”-skip:objectName=dbFullSql”‘ を認識できません。引数はすべて “-” で始まります。
エラー数: 1。
解決策
上記リンクにある通り、フラグ値を_MsDeployAdditionalFlags環境変数に設定することで対応可能。
Web 配置 コマンドを、__MsDeployAdditionalFlags 環境変数を設定して指定することもできます。
SET _MsDeployAdditionalFlags=-skip:objectName=dbFullSql
example.deploy.cmd /T /M:hostname /U:UserName /P:Password
VisualStudio標準では、XML-Document-Transformで差分を記述し、元のファイルを変換するという方法となる。
Web アプリケーション プロジェクト配置の Web.config 変換構文
以下のようなファイルを用意し、Web.Debug.configやWeb.Release.configといったファイル名にすれば、Debugビルド時にはWeb.Debug.configファイルを、Releaseビルド時にはweb.Release.configファイルがWeb.configとマージされる。
[/xml]
Debug/Releaseだけでは2環境しか対応できないが、3環境以上対応したい場合もそれなりにある。
その場合はProjectConfigTransformFileNameプロパティを変更することで対応可能。
[/xml]
というようなtargetsファイルをImportしておけば、
msbuild /t:Package /p:DeploymentEnvironment=production
とかやった場合にWeb.production.configを用いてWeb.configが変換される。
これはMicrosoft.Web.Publishing.targetsの内部動作に依存している。
VisualStudioに含まれるtargetsであるため、VSをインストールしないと利用できない。
ここでDeploymentEnvironmentのみ変更してビルドしなおした場合、Web.configが最新状態であるとみなされて変換されないことがある。
PostTransformWebConfig: Web.production.config を使用して Web.config を obj\Release\TransformWebConfig\transformed\Web.config に変換しました。 PipelineTransformPhase: パイプラインの発行の変換フェーズ PreAutoParameterizationWebConfigConnectionStrings: obj\Release\CSAutoParameterize\original\Web.config への obj\Release\TransformWebConfig\transformed\Web.config のコピーをスキップします。ファイル obj\Release\CSAutoParameterize\original\Web.config は最新のものです AutoParameterizationWebConfigConnectionStringsCore: すべての出力ファイルが入力ファイルに対して最新なので、ターゲット "AutoParameterizationWebConfigConnectionStringsCore" を省略します。
この場合、Cleanターゲットも実行するようにすれば対処可能。
PostTransformWebConfig: Web.production.config を使用して Web.config を obj\Release\TransformWebConfig\transformed\Web.config に変換しました。 PipelineTransformPhase: パイプラインの発行の変換フェーズ PreAutoParameterizationWebConfigConnectionStrings: ディレクトリ "D:\Jenkins\workspace\example\obj\Release\CSAutoParameterize\transformed\" を作成しています。 obj\Release\TransformWebConfig\transformed\Web.config を obj\Release\CSAutoParameterize\original\Web.config にコピーしています。 AutoParameterizationWebConfigConnectionStringsCore: ソース ファイルを変換しています: D:\Jenkins\workspace\example\obj\Release\TransformWebConfig\transformed\Web.config 変換ファイルを適用しています:出力ファイル: obj\Release\CSAutoParameterize\transformed\Web.config 変換に成功しました
AppConfigプロパティでapp.configファイルを指定すれば良い。
[xml title=”sample.targets” mark=”3″]
app.$(DeploymentEnvironment).config
[/xml]
というようなtargetsファイルをImportすれば、ビルド時のDeploymentEnvironmentプロパティに応じてプロパティファイルが切り替わる。
msbuild /t:Build /p:DeploymentEnvironment=production
とかやった場合は、app.production.configが読み込まれる。
これは、.NET Frameworkの標準targetsであるMicrosoft.Common.targets内でAppConfigプロパティが読み込まれているのを利用している。
たぶん標準的な方法ではない。。
因みにXDTを用いることも可能な模様。
Vishal Joshi’s Tangent: Applying XDT magic to App.Config